The present invention relates generally to input devices for use with computers and other display-based processing systems, and more particularly to an input device which is capable of providing information in six degrees of freedom for controlling movement of a real or virtual object in three-dimensional space.
Many conventional computer input devices, such as a mouse, a tracking ball or a joystick, provide control of a two-dimensional computer-generated object, e.g., a cursor on a computer screen. These devices provide two degrees of freedom in the form of two positional parameters, i.e., left-right and forward-backward movement, also known as X and Y translational position. Other conventional computer input devices provide three or more degrees of freedom. For example, there are a number of known input devices that provide control over three positional parameters, i.e., left-right, forward-backward and up-down movement, also known as X, Y, and Z translational position, as well as control over three angular or orientation parameters, i.e., roll, pitch and yaw, for a total of six degrees of freedom. Such devices provide realistic control of three-dimensional computer-generated objects in applications such as virtual reality, video games and graphical editing.
An example of an input device providing six degrees of freedom is described in U.S. Pat. No. 5,889,505 entitled xe2x80x9cVision-Based Six-Degree-of-Freedom Computer Input Devicexe2x80x9d and issued to Toyama et al. The position and orientation of this input device are determined by tracking a physical object suspended by cables as it is moved by a user. The tracking mechanism requires either an initialization where the tracked object is first imaged in a xe2x80x9chome position,xe2x80x9d or a comparison of current data to previously stored data. The Z coordinate is measured by computing how far apart the pixels of the tracked object are from its centroid. Thus, this method includes all the pixels of the tracked object in its Z computation. Another problem with this approach is that it computes orientation by tracking two reference points that have different distinguishing characteristics. In other words, these reference points must be visually distinguishable. Yet another drawback of this approach is that it does not provide absolute values for the rotation and translation parameters, but only values that are proportional to the actual quantities. These values must then be scaled before being used to control applications.
U.S. Pat. No. 5,856,844, issued to Batterman et al. and entitled xe2x80x9cMethod and Apparatus for Determining Position and Orientation,xe2x80x9d describes a method for determining the six degrees of freedom of a head mounted display and a handle to which an optically-modulated target is attached. The target is marked with squares on its surface, and by tracking the perspective views of these squares, six degrees of freedom are computed. A problem with this approach is that it requires a special orientation mark in the optically-modulated target, in order to identify the ordering of the squares. Another problem is that this approach determines rotation angles directly, and is therefore unduly prone to noise-related distortions.
Techniques described in U.S. Pat. No. 5,227,985, issued to DeMenthon and entitled xe2x80x9cComputer Vision System for Position Monitoring in Three Dimensions Using Non-Coplanar Light Sources Attached to a Monitored Object,xe2x80x9d and U.S. Pat. No. 5,297,061, issued to DeMenthon et al. and entitled xe2x80x9cThree Dimensional Pointing Device Monitored by Computer Vision,xe2x80x9d determine position and orientation of an object by utilizing a set of non-coplanar light sources mounted on the object. A problem with this approach is that the use of non-coplanar light sources makes the device more difficult to manufacture and therefore more costly. Another problem is that the light sources used in this approach are of different sizes, in order to correctly identify the ordering of the light sources in the corresponding image, which adds additional complexity to the device.
U.S. Pat. No. 4,672,562, issued to Egli et al. and entitled xe2x80x9cMethod and Apparatus for Determining Location and Orientation of Objects,xe2x80x9d describes an input device comprising an orthogonally-related target array. The points are arranged in a very specific configuration such that the fourth target point forms a common intersection point of first, second and third line projections passing separately through the first three points and intersecting the fourth point. In addition, these line projections must form three right angles at the fourth target point. Such constraints are generally undesirable in that they can render the device difficult to manufacture and use.
In view of the above, it is apparent that a need exists for an improved input device capable of providing six degrees of freedom, while also avoiding the problems associated with the conventional approaches.
The invention provides an improved input device and related method for providing position and orientation information with six degrees of freedom for use in manipulating a real or virtual three-dimensional object. An illustrative embodiment includes a handle with a plate attached to an upper portion thereof. Associated with an upper planar portion of the plate is a set of light sources arranged in a designated pattern. A camera or other detection device detects light from the light sources in order to determine the position, e.g., X, Y and Z positional parameters, and orientation, e.g., roll, pitch and yaw rotational parameters, of the input device. Control software running on a computer system may be used to detect and localize the light sources that are visible in a given image generated by the camera, to associate each of the light sources with a corresponding label, to determine the position and orientation information from the positions of the light sources in the image, and to communicate the position and orientation information to at least one application running on the computer system.
In accordance with the invention, the control software determines the corresponding label for each of the light sources at least in part using a measure which is a function of a set of points associated with the planar surface, each corresponding to one of the light sources, with a given one of the points selected as a principal point. The measure is invariant under perspective projection, such that if the set of points associated with the planar surface are projected into an image, the measure generated for the sets of points associated with the planar surface is the same as that generated for the points as projected into the image. The control software first computes the three-dimensional positions of all the light sources, and subsequently determines the orientation information by directly calculating roll, pitch and yaw rotational parameters from computed translational vectors.
The techniques of the present invention provide a number of significant advantages over the previously-described conventional approaches. For example, an input device in accordance with the illustrative embodiment of the invention utilizes a planar arrangement of light sources, each of which may have the same characteristics, and is therefore easier to manufacture and less costly than conventional devices. No orientation marks are required and there are no constraints on the pattern of light sources as long as the sources are distinguishable using the above-mentioned measure. In addition, an input device in accordance with the invention can generate accurate positional and orientation values without any scale ambiguity. Furthermore, because the invention first computes the three-dimensional positions of all light sources and uses this information to determine the orientation, it is more robust and less prone to noise-related distortions than methods that determine rotation angles directly.